home *** CD-ROM | disk | FTP | other *** search
- /*
- * Implementation of things missing in Windows
- */
-
- #ifndef M_PI
- #define M_PI 3.14159265358979323846
- #endif
-
- #undef ntohs
- #undef ntohl
- #undef htonl
-
- #ifdef WINDOWS_FUNCTIONS
- /* byte order */
-
- #ifndef AMIGA
- static unsigned short StoM(unsigned short inv) {
- union iconv {
- unsigned short ui;
- unsigned char uc[2];
- } *inp, outv;
-
- inp = (union iconv *)&inv;
-
- outv.uc[0] = inp->uc[1];
- outv.uc[1] = inp->uc[0];
-
- return (outv.ui);
- }
-
- static unsigned int ItoM(unsigned int inv) {
- union iconv {
- unsigned int ui;
- unsigned char uc[4];
- } *inp, outv;
-
- inp = (union iconv *)&inv;
-
- outv.uc[0] = inp->uc[3];
- outv.uc[1] = inp->uc[2];
- outv.uc[2] = inp->uc[1];
- outv.uc[3] = inp->uc[0];
-
- return (outv.ui);
- }
-
- unsigned short ntohs(unsigned short inv) { return StoM(inv); }
- unsigned long ntohl(unsigned long inv) { return ItoM(inv); }
- unsigned long htonl(unsigned long inv) { return ItoM(inv); }
- #endif
-
- char *optarg;
- int optind=1;
-
- char getopt(int argc, char **argv, char *args) {
- int n,nlen=strlen(args),nLen=0;
- char nCmd;
-
- if (argv[optind] && *argv[optind]=='-') {
- nCmd=*((argv[optind]+1));
-
- for (n=0;n<nlen;n++) {
- if (args[n] == ':') continue;
- if (args[n] == nCmd) {
- if (args[n+1]==':') {
- char retVal;
- retVal=*(argv[optind]+1);
- optarg=argv[optind+1];
- if (!optarg) optarg="";
- optind+=2;
- return retVal;
- } else {
- char retVal;
- retVal=*(argv[optind]+1);
- optarg=NULL;
- optind+=1;
- return retVal;
- }
- }
- }
- }
- return -1;
- }
-
- #else
-
- unsigned short ntohs(unsigned short inv);
- unsigned long ntohl(unsigned long inv);
- unsigned long htonl(unsigned long inv);
-
- extern char *optarg;
- extern int optind;
-
- char getopt(int argc, char **argv, char *args);
- #endif
-
- #ifdef AMIGA
- /* We're big endian */
- #define ntohl(x) (x)
- #define ntohs(x) (x)
- #endif
-
-